CRAN Status Lifecycle: experimental PRs Welcome

Overview

Description

English

The Euronext R Package is a powerful tool for accessing and retrieving financial information from the Euronext stock exchange. Whether you are interested in stocks, indexes, funds, ETFs, or bonds, this package provides a convenient interface to gather essential data for analysis and decision-making in the financial domain. With user-friendly functionalities, it simplifies the process of collecting historical data on share prices, trading volumes, and other financial indicators. Researchers, investors, and other users can extract valuable insights and make informed decisions based on the comprehensive information available. In essence, the ‘Euronext’ library is a valuable asset for those seeking a deeper understanding of Euronext and the financial markets in Europe.

Français

Le package R Euronext est un outil puissant pour accéder et récupérer des informations financières de la bourse Euronext. Que vous soyez intéressé par les actions, les indices, les fonds, les ETF ou les obligations, ce package offre une interface pratique pour collecter des données essentielles pour l’analyse et la prise de décision dans le domaine financier. Avec des fonctionnalités conviviales, il simplifie le processus de collecte de données historiques sur les prix des actions, les volumes de transactions et d’autres indicateurs financiers. Les chercheurs, les investisseurs et d’autres utilisateurs peuvent extraire des informations précieuses et prendre des décisions éclairées en se basant sur les informations complètes disponibles. En somme, la bibliothèque ‘Euronext’ est un atout précieux pour ceux qui cherchent à approfondir leur compréhension d’Euronext et des marchés financiers en Europe.

Installation

Installation guidelines

You can install the development version of EURONEXT from github with:

# github dev version
## We can use devtools
# Install the development version from GitHub
devtools::install_github("Fredysessie/Euronext")

# Or use remotes
# install.packages("remotes")

remotes::install_github("Fredysessie/Euronext")

EN_GetISIN() function

The function takes a single parameter, ‘ticker,’ which can be the symbol, name, or ISIN of a given stock or index, and then returns its DNA.

To efficiently use the ‘Euronext’ package, it is important to understand how to handle Ticker Names, ISIN, and DNA, as many functions in the package rely on these. Note: There is a small difference between ISIN and DNA. Here’s a simple example: the ticker “4DDD” has the ISIN “US88554D2053,” and its DNA is “US88554D2053-ETLX.” As you can see, the DNA is composed of the ISIN and the market identifier “ETLX,” preceded by “-”.

Please refer to the respective functions EN_GetISIN(), EN_GetISIN_Etf(), EN_GetISIN_F(), and EN_GetISIN_B() if you wish to obtain a list of available Stocks or Indices, ETFs, Funds, and Bonds on Euronext.

# Get DNA of ticker "4DDD"
EN_GetISIN("4DDD")
#> [1] "US88554D2053-ETLX"

# Get DNA for the ticker name "ADS MARITIME HOLD"
EN_GetISIN("ADS MARITIME HOLD")
#> [1] "CY0108052115-MERK"

# Get DNA for ATENOR company by providing its ISIN
EN_GetISIN("BE0003837540")
#> [1] "BE0003837540-XBRU"

EN_GetISIN_F() function

# Get Fund 'ACOMEA GLOBALE' DNA
aco_dna <- EN_GetISIN_F("ACOMEA GLOBALE")

# In case you want the ISI only
sub("-.*", "", aco_dna) #To get only the ISIN
#> [1] "IT0005091100"

# Get Fund 'ASNU SMALL MIDCAPF' DNA
asnu_dna <- EN_GetISIN_F("ASN5")
print(asnu_dna)
#> [1] "NL0014270217-XAMS"

# Get Fund 'COMPAM ACTIVE GLOB' DNA
EN_GetISIN_F("LU1275425897")
#> [1] "LU1275425897-ATFX"

EN_GetISIN_Etf() function

# Get ETF 'AAPL' DNA
EN_GetISIN_Etf("AAPL")
#> [1] "XS2337099563-XAMS"

# Get ETF '-1X SHORT DIS' DNA
EN_GetISIN_Etf("-1X SHORT DIS")
#> [1] "XS2337085422-XAMS"

# Get ETF '3x Long Coinbase' DNA
EN_GetISIN_Etf("XS2399367254")
#> [1] "XS2399367254-XAMS"

EN_GetISIN_B() function

#To get only the DNA of all same bonds issued
the_dna1 <- EN_GetISIN_B("ABN AMRO BANK N.V.")
print(the_dna1)
#> [1] "XS1344751968-XAMS"

the_isin1 <- sub("-.*", "", the_dna1) #To get only the ISINs
print(the_isin1)
#> [1] "XS1344751968"

#To get only the DNA of Bond 'A2A GREEN BOND TF'
the_dna2 = EN_GetISIN_B("A2A GREEN BOND TF")
the_isin2 =sub("-.*", "", the_dna2) #To get only the ISIN
print(the_isin2)
#> [1] "XS2403533263"

EN_Stocks_List()

This function receives as input stock_choice and then retrieves a list of companies listed on the provided Euronext stock exchanges, filtered by the initial letter of their names. It provides information such as the company name, ticker symbol, ISIN code, market, last closing price, percentage change, and a link to the company’s details on the Euronext website. - stock_choice A character string specifying the stock exchange. Options include “A” or “Amsterdam,” “B” or “Brussels,” “D” or “Dublin”, “L” or “Lisbon,” “M” or “Milan,” “P” or “Paris,” and “O” or “Oslo.”

# library(Euronext)
# library(httr)
# library(httr2)
# library(rvest)
# library(jsonlite)
# library(stringr)

# The columns names of the initial dataframe is c("Date", "Name", "Ticker", "Code_ISIN", "Market", "Last_price", "Percentage change (in %)", "URL", "Ticker_adn")

# So I will only display columns "Name", "Ticker", "Code_ISIN", "Market", "Last_price" and "Percentage change (in %)"


a_result_df <- EN_Stocks_List("A")  # For Amsterdam Stock
head(a_result_df)[,c(2:6)]
#>                 Name Ticker    Code_ISIN     Market Last_price
#> 1        AALBERTS NV   AALB NL0000852564       XAMS     €35.77
#> 2 ABN AMRO BANK N.V.    ABN NL0011540547       XAMS     €13.23
#> 3             ACCSYS    AXS GB00BQQFX454       XAMS      €0.68
#> 4              ACOMO  ACOMO NL0000313286       XAMS     €17.42
#> 5               ADUX   ADUX FR0012821890 XPAR, XAMS      €1.20
#> 6              ADYEN  ADYEN NL0012969182       XAMS         €1


b_result_df <- EN_Stocks_List("B")[,c(2:6)]  # For Brussels Stock
tail(b_result_df)
#>                   Name Ticker    Code_ISIN     Market Last_price
#> 138                WDP    WDP BE0974349814 XBRU, XAMS     €26.08
#> 139 WERELDHAVE BELGIUM   WEHB BE0003724383       XBRU     €47.30
#> 140               WHAT  WHATS BE0003573814       XBRU     €60.20
#> 141   WHITESTONE GROUP   ROCK BE0974401334       ALXB     €10.40
#> 142               XIOR   XIOR BE0974288202       XBRU     €26.95
#> 143 ZENOBE GRAMME CERT    ZEN BE0003809267       XBRU    €180.00

p_result_df <- EN_Stocks_List("P")[,c(2:6)]  # For Paris Stock
head(p_result_df)
#>            Name Ticker    Code_ISIN Market Last_price
#> 1    1000MERCIS  ALMIL FR0010285965   ALXP     €24.80
#> 2         2CRSI  AL2SI FR0013341781   ALXP      €4.61
#> 3 A.S.T. GROUPE  ALAST FR0000076887   ALXP     €1.005
#> 4    AB SCIENCE     AB FR0010557264   XPAR      €3.07
#> 5 ABC ARBITRAGE   ABCA FR0004040608   XPAR      €4.05
#> 6          ABEO   ABEO FR0013185857   XPAR     €14.60

l_result_df <- EN_Stocks_List("L")[,c(2:6)]  # For Lisbon Stock
head(l_result_df)
#>               Name Ticker    Code_ISIN Market Last_price
#> 1   AGUAS DA CURIA    CUR PTCUR0AP0000   ENXL      €1.17
#> 2       ALTRI SGPS   ALTR PTALT0AE0002   XLIS     €4.456
#> 3 ATRIUM BIRE SIGI  MLATR PTTBI0AM0006   ENXL       NANA
#> 4  B.COM.PORTUGUES    BCP PTBCP0AM0015   XLIS    €0.2587
#> 5          BENFICA  SLBEN PTSLB0AM0010   XLIS      €2.92
#> 6      COFINA,SGPS    CFN PTCFN0AE0003   XLIS     €0.394

m_result_df <- EN_Stocks_List("M")[,c(2:6)]  # For Milan Stock
head(m_result_df)
#>              Name Ticker    Code_ISIN Market Last_price
#> 1 3D SYSTEMS CORP   4DDD US88554D2053   ETLX     €4.728
#> 2 3D SYSTEMS CORP   1DDD US88554D2053   BGEM      €4.65
#> 3 3D SYSTEMS CORP   2DDD US88554D2053   MTAH     €4.542
#> 4              3M   4MMM US88579Y1010   ETLX     €87.00
#> 5              3M   1MMM US88579Y1010   BGEM     €88.06
#> 6              3M   2MMM US88579Y1010   MTAH     €88.04

d_result_df <- EN_Stocks_List("D")[,c(2:6)]  # For Dublin Stock
head(d_result_df)
#>                 Name Ticker    Code_ISIN Market Last_price
#> 1      AIB GROUP PLC    A5G IE00BF0L3536   XMSM     €3.988
#> 2             AQUILA   AERI GB00BK6RLF66   XESM    €0.7938
#> 3 BANK OF IRELAND GP   BIRG IE00BD1RP616   XMSM     €8.072
#> 4    CAIRN HOMES PLC    C5H IE00BWY4ZF18   XMSM     €1.416
#> 5  CORRE ENERGY B.V.  CORRE NL0015000DY3   XESM      €1.30
#> 6 CRH PLC 5PCCumPref   DD8A IE0001827264   XMSM      €1.00

o_result_df <- EN_Stocks_List("O")[,c(2:6)]  # For Oslo Stock
head(o_result_df, 10)
#>                  Name Ticker    Code_ISIN Market Last_price
#> 1        2020 BULKERS   2020 BMG9156K1018   XOSL   NA139.50
#> 2    5TH PLANET GAMES    5PG DK0060945467   XOAS    NA1.828
#> 3     AASEN SPAREBANK   AASB NO0010672181   MERK   NA128.00
#> 4  ABG SUNDAL COLLIER    ABG NO0003021909   XOSL     NA6.22
#> 5           ABL GROUP    ABL NO0010715394   XOSL    NA12.50
#> 6            ADEVINTA    ADE NO0010844038   XOSL   NA112.60
#> 7   ADS MARITIME HOLD    ADS CY0108052115   MERK     NA2.14
#> 8                AEGA   AEGA NO0012958539   XOAS   NA2.3105
#> 9          AF GRUPPEN    AFG NO0003078107   XOSL   NA117.00
#> 10             AGILYX   AGLX NO0010872468   XOSL    NA25.50
library(Euronext)
p_result_df_new <- EN_Stocks_List("P")

# p_result_df_new$Date <- strptime(p_result_df_new$Date, format = "%d %b %Y")
# as.Date(strptime(head(a_result_df$Date), format = "%d %b %Y"))

clm_format = list(list(targets = c(0, 2:8), className = "dt-center"))

datatable(p_result_df_new[c(2:9, 1)], escape = FALSE, 
          # filter = 'top',
          rownames = FALSE,
          extensions = list('ColReorder' = NULL, 'RowReorder' = NULL,
                            'Buttons' = NULL, 'Responsive' = NULL),
          options = list(dom = 'BRrltpi', scrollX = TRUE, scrollY = '500px', # ajustez la hauteur en fonction de vos besoins
                         lengthMenu = list(c(10, 50, 100, -1), c('5', 'All'))
                         ,
                         ColReorder = TRUE, rowReorder = FALSE,
                         buttons = list('copy', 'print',
                                        list(extend = 'collection',
                                             buttons = c('csv', 'excel', 'pdf'),
                                             columnDefs = clm_format,
                                             text = 'Download'), I('colvis'))
          ))

Example 3: Get the list of ETFs quoted on Euronext markets

# library(Euronext)
# library(httr)
# library(jsonlite)
# library(dplyr)
# library(rvest)
# library(stringr)

# Example usage:
dt_ <- EN_Etfs_List()
head(dt_[, c(2:9)])
#>                 Name Ticker    Code_ISIN Market Bid Ask Last_price
#> 1 $Asia IG Corp US A   ASIG IE0007G78AC4   XAMS   -   -    $4.7937
#> 2      -1X SHORT DIS   SDIS XS2337085422   XAMS   -   -     €6.861
#> 3     -1X SHORT PLTR   SPLR XS2337086669   XAMS   -   -    €2.0178
#> 4     -1X SHORT PLUG   SPLU XS2336362079   XAMS   -   -    €3.8327
#> 5 -3X ARK INNOVATION  SARKK XS2399368906   XAMS   -   -    €0.7373
#> 6     -3x China Tech   SKWE XS2399370126   XAMS   -   -    €0.3382
#>   Percentage_change
#> 1             -1.02
#> 2             -0.13
#> 3             -3.87
#> 4              2.77
#> 5              7.90
#> 6              0.45

Example 4: Euronext Paris ticker ISIN

# Retrieve the ISIN for a company with ticker "abca"
EN_P_Ticker_adn("abca")
#> [1] "FR0004040608-XPAR"

# Example result for a valid ticker "AAA"
result <- EN_P_Ticker_adn("AAA")
print(result)
#> [1] "FR0000062465-XPAR"

# Example for a non-existing ticker "afsf"
print(EN_P_Ticker_adn("afsf"))  # Ticker is not existing
#> [1] "Ticker not found"